home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / dev / src / mrq_library.lha / lib / examples / asm / fraktal.s < prev    next >
Text File  |  2000-09-07  |  3KB  |  227 lines

  1. ;APS00000000000000000000000000000000000000000000000000000000000000000000000000000000
  2.     incdir    includes:
  3.  
  4.     include    lvos.i
  5.     include    lvo/mrq_lib.i
  6.     include    exec/exec.i
  7.     include    graphics/gfx.i
  8.     include    graphics/modeid.i
  9.     include    intuition/intuition.i
  10.  
  11.  
  12.     section    code,code_p
  13.  
  14. szer=640
  15. wys=480
  16. x_offs=0
  17. y_offs=0
  18.  
  19.  
  20.     move.l    4,a6
  21.     moveq    #$00,d0
  22.     lea    mrqlib,a1
  23.     jsr    _LVOOpenLibrary(a6)
  24.     move.l    d0,mrqbase
  25.     tst.l    d0
  26.     beq.w    _stupid_error
  27.  
  28.     move.l    mrqbase,a6
  29.     jsr    _LVOMisterQInit(a6)    ;inicjalizacja biblioteki, struktur
  30.  
  31.     tst.l    d0
  32.     beq.w    _eext
  33.  
  34.     move.l    d0,lib_base
  35.     move.l    lib_base,a5
  36. ;-------
  37.  
  38.     move.l    #szer,d0
  39.     move.l    #wys,d1
  40. ;    move.l    #HIRESLACE_KEY+PAL_MONITOR_ID,d2
  41.     move.l    #$00,d2
  42.  
  43.     lea    paleta,a0
  44.     jsr    _LVOMOpenScreen(a6)
  45.     tst.l    d0
  46.     beq.w    _cs_sc
  47.     move.l    d0,screenbase
  48.  
  49.     move.l    d0,a0
  50.     move.l    s_Win_Base(a0),a0
  51.     move.l    wd_UserPort(a0),a0
  52.     move.l    a0,userport
  53.  
  54.     fmove.x    mxa,fp0
  55.     fsub.x    mna,fp0
  56.     fdiv.x    mxx,fp0
  57.     fmove.x    fp0,kroka
  58.  
  59.     fmove.x    mxb,fp0
  60.     fsub.x    mnb,fp0
  61.     fdiv.x    mxy,fp0
  62.     fmove.x    fp0,krokb
  63.  
  64. ;a=fp0 b=fp1
  65. ;x=fp2 y=fp3
  66.  
  67.     fmove.x    mnb,fp0
  68.     move.l    #0,d7
  69. nexti    fmove.x    mna,fp1
  70.     move.l    #0,d6
  71. nextj    
  72.     fmove.x    #0,fp2
  73.     fmove.x    #0,fp3
  74.  
  75.     move.l    #0,d2
  76. nextq    
  77.  
  78.     fmove.x    fp2,fp4
  79.     fmul.x    fp4,fp4
  80.     fmove.x    fp4,fp6
  81.  
  82.     fmove.x    fp3,fp5
  83.     fmul.x    fp5,fp5
  84.     fmove.x    fp5,fp7
  85.     fsub.x    fp5,fp4
  86.     fadd.x    fp1,fp4
  87.  
  88.     fmove.x    fp3,fp5
  89.     fmul.x    fp2,fp5
  90.     fadd.x    fp5,fp5
  91.     fadd.x    fp0,fp5
  92.     fmove.x    fp5,fp3
  93.  
  94.     fmove.x    fp4,fp2
  95.  
  96.     fadd.x    fp7,fp6
  97.  
  98.     fcmp.x    #4,fp6
  99.     fbgt    break
  100.  
  101.     add.l    #1,d2
  102.     cmp.l    ile,d2
  103.     bne.b    nextq
  104.     move.l    #0,d2
  105. break
  106.     move.l    d6,d0
  107.     move.l    d7,d1
  108.     asl.b    #2,d2
  109.  
  110.     bsr.w    plot
  111.  
  112.     movem.l    d0/a0,-(sp)
  113.  
  114.     move.l    userport,a0
  115.     jsr    _LVOGetDynamicMessage(a6)
  116.     move.l    d0,a0
  117.     move.l    im_Class(a0),d0
  118.     cmp.l    #IDCMP_RAWKEY,d0
  119.     beq.b    _key1
  120.     bra.b    _czekaj1
  121. _key1    
  122.     move.w    im_Code(a0),d0
  123.     and.l    #$000000ff,d0
  124.     cmp.b    #95,d0
  125.     bne.b    _czekaj1
  126.  
  127.     movem.l    (sp)+,d0/a0
  128.     bra.b    manend
  129.  
  130. _czekaj1
  131.     movem.l    (sp)+,d0/a0
  132.  
  133.     fadd.x    kroka,fp1
  134.  
  135.     addq.l    #1,d6
  136.     cmp.l    #szer,d6
  137.     bne.w    nextj
  138.  
  139.     fadd.x    krokb,fp0
  140.  
  141.     addq.l    #1,d7
  142.     cmp.l    #wys,d7
  143.     bne.w    nexti
  144.  
  145. _czekaj2
  146.     move.l    userport,a0
  147.     jsr    _LVOGetMessage(a6)
  148.     move.l    d0,a0
  149.     move.l    im_Class(a0),d0
  150.     cmp.l    #IDCMP_RAWKEY,d0
  151.     beq.b    _key2
  152.     bra.b    _czekaj2
  153. _key2    move.w    im_Code(a0),d0
  154.     and.l    #$000000ff,d0
  155.     cmp.b    #95,d0
  156.     bne.b    _czekaj2
  157. manend
  158.  
  159.  
  160. _cs_sc    move.l    screenbase,a0
  161.     jsr    _LVOMCloseScreen(a6)
  162.  
  163. _ext    move.l    lib_base,a0
  164.     jsr    _LVOMisterQCleanUp(a6)
  165. _eext    move.l    4,a6
  166.     move.l    mrqbase,a1
  167.     jsr    _LVOCloseLibrary(a6)
  168.     rts
  169. ;-------
  170. get    
  171.  
  172.     movem.l    d1-a6,-(sp)
  173.  
  174. petla    move.l    a0,-(sp)
  175.     move.l    gadbase(a5),a6
  176.     jsr    _LVOGT_GetIMsg(a6)
  177.     move.l    (sp)+,a0
  178.     tst.l    d0        
  179.     bne.b    jest
  180.     moveq    #$00,d0
  181.     bra.b    jest2
  182. jest    move.l    d0,a1
  183.     movem.l    d0/a0,-(sp)
  184.     move.l    gadbase(a5),a6
  185.     jsr    _LVOGT_ReplyIMsg(a6)
  186.     movem.l    (sp)+,d0/a0
  187. jest2
  188.     movem.l    (sp)+,d1-a6
  189.  
  190.     rts
  191. ;-------
  192. plot    
  193.     movem.l    d1-a6,-(sp)
  194.     move.l    gfxbase(a5),a6
  195.     move.l    s_RastPort(a5),a1
  196.     movem.l    d0/d1,-(sp)
  197.     move.l    d2,d0
  198.     jsr    _LVOSetAPen(a6)
  199.     movem.l    (sp)+,d0/d1
  200.     jsr    _LVOWritePixel(a6)    
  201.     movem.l    (sp)+,d1-a6
  202.     rts
  203. ;-------
  204. _stupid_error
  205.     moveq    #$00,d0
  206.     rts
  207. ;-------
  208. userport    dc.l    $00
  209. ile        dc.l    700
  210. mna        dc.x    -0.76649008
  211. mxa        dc.x    -0.76646719
  212. mnb        dc.x    0.09993625
  213. mxb        dc.x    0.09992023
  214. mxx        dc.x    640
  215. mxy        dc.x    480
  216. kroka        dc.x    0
  217. krokb        dc.x    0
  218. ;-------
  219. mrqbase        dc.l    $00
  220. lib_base    dc.l    $00
  221. screenbase    dc.l    $00
  222. ;-------
  223. mrqlib        dc.b    'mrq.library',0
  224. paleta        incbin    gfx:widok_640\512.rgb32
  225. ;-------
  226.  
  227.